package com.heima.apis.wemedia;

import com.heima.model.common.dtos.ResponseResult;
import com.heima.model.wemedia.dtos.NewsAuthDto;
import com.heima.model.wemedia.dtos.WmNewsDto;
import com.heima.model.wemedia.dtos.WmNewsPageReqDto;
import com.heima.model.wemedia.pojos.WmNews;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;

import java.util.List;

@Api(tags = "自媒体文章管理")
public interface WmNewsControllerApi {

    /**
     * 分页带条件查询自媒体文章列表
     * @param wmNewsPageReqDto
     * @return
     */
    @ApiOperation("自媒体文章列表查询")
    public ResponseResult findAll(WmNewsPageReqDto wmNewsPageReqDto);

    /**
     * 提交文章或保存草稿
     * @param wmNews
     * @return
     */
    @ApiOperation("提交文章或保存草稿接口")
    ResponseResult submitNews(WmNewsDto wmNews);

    /**
     * 根据id获取文章信息
     * @return
     */
    @ApiOperation("根据文章查询文章信息")
    ResponseResult findWmNewsById(Integer id);

    /**
     * 删除文章
     * @return
     */
    @ApiOperation("根据文章id删除文章接口")
    ResponseResult delNews(Integer id);

    /**
     * 上下架
     * @param dto
     * @return
     */
    @ApiOperation("文章上下架接口")
    ResponseResult downOrUp(WmNewsDto dto);

    /**
     * 根据id查询文章
     * @param id
     * @return
     */
    @ApiOperation("根据id查询文章")
    WmNews findById(Integer id);

    /**
     * 修改文章
     * @param wmNews
     * @return
     */
    @ApiOperation("修改文章内容")
    ResponseResult updateWmNews(WmNews wmNews);

    /**
     * 查询需要发布的文章id列表
     * @return
     */
    @ApiOperation("查询到发布时间的文章的id")
    List<Integer> findRelease();

    /**
     * 查询文章列表
     * @param dto
     * @return
     */
    @ApiOperation("查询文章列表")
    public ResponseResult findList(NewsAuthDto dto);

    /**
     * 查询文章详情
     * @param id
     * @return
     */
    @ApiOperation("查询文章详细信息")
    public ResponseResult findWmNewsVo(Integer id) ;

    /**
     * 文章审核成功
     * @param dto
     * @return
     */
    @ApiOperation("人工审核成功")
    public ResponseResult authPass(NewsAuthDto dto);

    /**
     * 文章审核失败
     * @param dto
     * @return
     */
    @ApiOperation("人工审核失败")
    public ResponseResult authFail(NewsAuthDto dto);
}
